/**
 * 为角色分配权限界面的JS
 * @author nowind
 * @since 2017/8/16 17:24
 */

var permit = {

    //点击系统
    sysChange: function(sysId) {

        var isChecked = $("#operate-" + sysId, navTab.getCurrentPanel()).is(':checked');
        $("input[relate='" + sysId + "']", navTab.getCurrentPanel()).each(function(){
            var $this = $(this);
            var moduleId = $this.val();
            $this.prop("checked", isChecked);
            $("input[relate='" + sysId + "-" + moduleId + "']").prop("checked", isChecked);
        })
    },

    //点击模块
    moduleChange: function(sysId, moduleId) {

        var isChecked = $("#module-" + sysId + "-" + moduleId, navTab.getCurrentPanel()).is(':checked');
        $("input[relate='" + sysId + "-" + moduleId + "']", navTab.getCurrentPanel()).prop("checked", isChecked);

        //设置系统选中状态
        permit.checkModuleAll(sysId, isChecked);
    },

    //点击权限
    permitChange: function(sysId, moduleId, permitId) {

        var isChecked = $("#permit-" + sysId + "-" + moduleId + "-" + permitId, navTab.getCurrentPanel()).is(':checked');

        //设置系统和模块选中状态
        permit.checkPermitAll(sysId, moduleId, isChecked);
        permit.checkModuleAll(sysId, isChecked);
    },

    //设置系统选中状态
    checkModuleAll: function(sysId, isCheckedCurr) {

        var $sys = $("#operate-" + sysId, navTab.getCurrentPanel());
        if(isCheckedCurr) {
            $sys.prop("checked", true);
        } else {
            var isAll = true;
            $("input[relate='" + sysId + "']", navTab.getCurrentPanel()).each(function(){
                if($(this).is(':checked')) { isAll = false; return; }
            })
            if(isAll) { $sys.prop("checked", false); } else { $sys.prop("checked", true); }
        }
    },

    //设置系统和模块选中状态
    checkPermitAll: function(sysId, moduleId, isCheckedCurr) {

        var $module = $("#module-" + sysId + "-" + moduleId, navTab.getCurrentPanel());
        if(isCheckedCurr) {
            $module.prop("checked", true);
        } else {
            var isAll = true;
            $("input[relate='" + sysId + "-" + moduleId + "']", navTab.getCurrentPanel()).each(function(){
                if($(this).is(':checked')) { isAll = false; return; }
            })
            if(isAll) { $module.prop("checked", false); } else { $module.prop("checked", true); }
        }
    }

}   //end permit


